-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: upgrade to polkadot v1.11.0 #666
Conversation
Crate versions that have been updated:
Runtime version has been increased. |
…_present integration test
runtime/basilisk/src/xcm.rs
Outdated
@@ -322,6 +325,7 @@ impl pallet_message_queue::Config for Runtime { | |||
type HeapSize = MessageQueueHeapSize; | |||
type MaxStale = MessageQueueMaxStale; | |||
type ServiceWeight = MessageQueueServiceWeight; | |||
type IdleMaxServiceWeight = (); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems like an important field we should configure?! So the max service weight we want to use on idle.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default is none
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but mby we could configure it to ServiceWeight so that we are able to process messages on idle as well
//! WORST CASE MAP SIZE: `1000000` | ||
//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` | ||
//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` | ||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there any reason that sometimes we use DEV as chain, but sometimes we use None like here runtime/basilisk/src/weights/pallet_whitelist.rs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason is that some pallets can't be benchmarked with the old benchmarking command (there is a bug, the command line parameter --heap-pages
is broken) so some pallets are benchmarked with new benchmarking tool. But this new tool uses a different chain spec and doesn't work with all pallets. As a result, we need to use 2 different benchmarking tools.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually no. It looks like a different chain spec is used. But it should not be a problem.
damn, i was using that... ty for letting me know @Roznovjak |
important breking change that will affect collators |
)); | ||
}); | ||
Rococo::execute_with(|| { | ||
assert_ok!(rococo_runtime::XcmPallet::reserve_transfer_assets( | ||
assert_ok!(rococo_runtime::XcmPallet::limited_reserve_transfer_assets( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reserve_transfer_asset was removed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deprecated, so I changed the test to get rid of the warning.
@@ -18,30 +18,28 @@ | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we really still need this pallet?
runtime/basilisk/src/xcm.rs
Outdated
@@ -322,6 +325,7 @@ impl pallet_message_queue::Config for Runtime { | |||
type HeapSize = MessageQueueHeapSize; | |||
type MaxStale = MessageQueueMaxStale; | |||
type ServiceWeight = MessageQueueServiceWeight; | |||
type IdleMaxServiceWeight = (); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default is none
runtime/basilisk/src/xcm.rs
Outdated
@@ -322,6 +325,7 @@ impl pallet_message_queue::Config for Runtime { | |||
type HeapSize = MessageQueueHeapSize; | |||
type MaxStale = MessageQueueMaxStale; | |||
type ServiceWeight = MessageQueueServiceWeight; | |||
type IdleMaxServiceWeight = (); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but mby we could configure it to ServiceWeight so that we are able to process messages on idle as well
scripts/benchmarking.sh
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would keep it. Let's hope that the issue with heap-pages
will be fixed in the next release and we can use it again. There is also a standalone tool for benchmarking, omni-bencher, which can also be used to benchmark all pallets, but it uses default (empty) chain spec and doesn't work with all our pallets.
NOTES:
All changes can be found here:
Breaking changes:
Notable changes
System Callbacks: The system pallet gets five new config items - all of which can be safely set to () as default.
Add the ability for MessageQueue to process enqueued messages on idle
Rate limiting for RPC server which can be utilized by the CLI --rpc-rate-limit
Adds pallet-parameters that allows to have parameters for pallet configs that dynamically change at runtime
pallet-migrations is introduced that can be configured in the System of a runtime to act as multi-block migrator.
Add claim_assets extrinsic to pallet-xcm
The construct_runtime macro now generates a test to assert that all GenesisConfigs of all pallets can be build within the runtime.
XCM fee payment API: A runtime API was added for estimating the fees required for XCM execution and delivery.
pallet-xcm's extrinsics teleport_assets and reserve_transfer_assets have been marked as deprecated. Please change their usage to the limited_teleport_assets and limited_reserve_transfer_assets, respectively; or use the generic/flexible transfer_assets extrinsic.
pallet-xcm's extrinsics execute and send have been marked as deprecated. Please change their usage to the new execute_blob and send_blob. There's a new utility in PolkadotJS Apps for encoding XCMs you can use: https://polkadot.js.org/apps/#/utilities/xcm
Migrations: prevent accidentally using inner unversioned migration instead of VersionedMigration
Adds optional HRMP notification handlers to the xcm-executor. These handlers are 3 new config types on the xcm-executor Config trait:
The runtime now can provide a number of predefined presets of RuntimeGenesisConfig struct. This presets are intended to be used in different deployments, e.g.: local, staging, etc, and should be included into the corresponding chain-specs. Having GenesisConfig presets in runtime allows to fully decouple node from runtime types (the problem is described in #1984).
New call hrmp.establish_channel_with_system to allow parachains to establish a channel with a system parachain
(Breaking change) For all authority nodes, the node binary now enforces the presence of a network key, instead of auto-generating when it is absent.
pallet-xcm has a new extrinsic transfer_assets_using_type_and_then for transferring assets from local chain to destination chain using an explicit XCM transfer types for transferring the assets and the fees:
E.g. For transferring a bridged Foreign Assets between local parachains, Asset Hub or the parachain that bridged the asset over must be used as the reserve location. Same when transferring bridged assets back across the bridge, the local bridging parachain must be used as the explicit reserve location.
The new method takes a custom_xcm_on_dest parameter allowing the caller to specify what should happen to the transferred assets once they reach the dest chain. The custom_xcm_on_dest parameter should contains the instructions to execute on dest as a final step. Usually as simple as: Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }]), but could be something more exotic like sending the assets even further.
Remove XCM SafeCallFilter for chains using Weights::v3